#ifndef _Expand_lyvm_H_
#define	_Expand_lyvm_H_

#include "DIVA_VM.h"

class Layout_Assistant{
private:
	static Layout_Assistant* lyAst;
	Layout_Assistant();
	DIVA_VM * _startvm ;  // if automatic exploration is set, this member store the starting vm
public:
	static Layout_Assistant* getInstance();

	/** return true if automatic exploration is set by user */
	bool getSettingAutoExplore(); 
	void setSettingAutoExplore(bool b) ;

	DIVA_VM * getStartingVM() { return _startvm ; }
	void setStartingVM(DIVA_VM* vm) { _startvm = vm ; }

	void b_expand(DIVA_VM*);

	/** depth first exploration */
	void d_expand(DIVA_VM*,int = 0,int = 0);
	
	/** given a right clicked VM, this method try to expand the reference VM associated with the vm */
	void expand(DIVA_VM* vm, bool autoexplore);

	void expand_all(DIVA_VM*);

};

#endif 